package org.jeecg.modules.satff.vo;

import java.util.List;
import org.jeecg.modules.satff.entity.AttendanceGroup;
import org.jeecg.modules.satff.entity.AttendanceClass;
import org.jeecg.modules.satff.entity.AttendanceWorkday;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelEntity;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Description: 考勤组
 * @Author: nbacheng
 * @Date:   2024-12-14
 * @Version: V1.0
 */
@Data
@ApiModel(value="oa_attendance_groupPage对象", description="考勤组")
public class AttendanceGroupPage {

	/**主键*/
	@ApiModelProperty(value = "主键")
    private String id;
	/**创建人*/
	@ApiModelProperty(value = "创建人")
    private String createBy;
	/**创建日期*/
	@ApiModelProperty(value = "创建日期")
    private Date createTime;
	/**更新人*/
	@ApiModelProperty(value = "更新人")
    private String updateBy;
	/**更新日期*/
	@ApiModelProperty(value = "更新日期")
    private Date updateTime;
	/**所属部门*/
	@ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
	/**设置周期天数*/
	@Excel(name = "设置周期天数", width = 15)
	@ApiModelProperty(value = "设置周期天数")
    private Integer cycleDay;
	/**外勤规则*/
	@Excel(name = "外勤规则", width = 15, dicCode = "FIELDWORK_RULE")
    @Dict(dicCode = "FIELDWORK_RULE")
	@ApiModelProperty(value = "外勤规则")
    private String fieldworkRule;
	/**允许外勤*/
	@Excel(name = "允许外勤", width = 15)
	@ApiModelProperty(value = "允许外勤")
    private String isAllowFieldwork;
	/**考勤组名称*/
	@Excel(name = "考勤组名称", width = 15)
	@ApiModelProperty(value = "考勤组名称")
    private String name;
	/**加班规则*/
	@Excel(name = "加班规则", width = 15, dicCode = "overtime_rules_dict")
    @Dict(dicCode = "overtime_rules_dict")
	@ApiModelProperty(value = "加班规则")
    private String overtimeRule;
	/**休息日打卡规则*/
	@Excel(name = "休息日打卡规则", width = 15)
	@ApiModelProperty(value = "休息日打卡规则")
    private Date restDayRule;
	/**考勤班次*/
	@Excel(name = "考勤班次", width = 15, dictTable = "oa_work_time", dicText = "time_str", dicCode = "time_str")
    @Dict(dictTable = "oa_work_time", dicText = "time_str", dicCode = "time_str")
	@ApiModelProperty(value = "考勤班次")
    private String settingConfig;
	/**地点打卡*/
	@Excel(name = "地点打卡", width = 15)
	@ApiModelProperty(value = "地点打卡")
    private String signConfigString;
	/**选择员工*/
	@Excel(name = "选择员工", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
	@ApiModelProperty(value = "选择员工")
    private String staffUids;
	/**法定节假日自动排休*/
	@Excel(name = "法定节假日自动排休", width = 15)
	@ApiModelProperty(value = "法定节假日自动排休")
    private String statutoryDayAutoRest;
	/**子负责人权限*/
	@Excel(name = "子负责人权限", width = 15, dicCode = "sub_manager_permission")
    @Dict(dicCode = "sub_manager_permission")
	@ApiModelProperty(value = "子负责人权限")
    private String subManagerPermission;
	/**子负责人*/
	@Excel(name = "子负责人", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
	@ApiModelProperty(value = "子负责人")
    private String subManagerUserId;
	/**未排班打卡规则*/
	@Excel(name = "未排班打卡规则", width = 15, dicCode = "unscheduled_sign_rule_dict")
    @Dict(dicCode = "unscheduled_sign_rule_dict")
	@ApiModelProperty(value = "未排班打卡规则")
    private String unscheduledSignRule;
	/**工作时长*/
	@Excel(name = "工作时长", width = 15)
	@ApiModelProperty(value = "工作时长")
    private Integer workHour;
	/**排班设置*/
	@Excel(name = "排班设置", width = 15)
	@ApiModelProperty(value = "排班设置")
    private String timeConfigString;
	/**类型*/
	@Excel(name = "类型", width = 15, dicCode = "attendance_type")
    @Dict(dicCode = "attendance_type")
	@ApiModelProperty(value = "类型")
    private String type;
	/**参与人数*/
	@Excel(name = "参与人数", width = 15)
	@ApiModelProperty(value = "参与人数")
    private Integer userNum;
	/**主负责人*/
	@Excel(name = "主负责人", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "username")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
	@ApiModelProperty(value = "主负责人")
    private String majorChargeUser;
	/**工作日*/
	@Excel(name = "工作日", width = 15, dicCode = "work_day_dict")
    @Dict(dicCode = "work_day_dict")
	@ApiModelProperty(value = "工作日")
    private String workDay;

	@ExcelCollection(name="设定班次")
	@ApiModelProperty(value = "设定班次")
	private List<AttendanceClass> attendanceClassList;
	@ExcelCollection(name="工作日设置")
	@ApiModelProperty(value = "工作日设置")
	private List<AttendanceWorkday> attendanceWorkdayList;

}
